package main

/**
改造成任务队列
sync包的WaitGroup实现了一个类似任务队列的结构
可以向队列中加入任务，任务完成会移除，Add() Done() Wait()
如果全部完成，队列会触发阻塞以阻止程序继续运行
*/

import (
	"fmt"
	"sync"
	"time"
)

func main() {
	count := 0

	var waitGroup sync.WaitGroup
	waitGroup.Add(1)

	ticker := time.NewTicker(time.Second * 1)

	// 匿函数 调用 协程
	go func() {
		defer waitGroup.Done()
		defer ticker.Stop()
		for {
			t := <-ticker.C
			fmt.Println("时间：", t.Format("2006-01-02 03:04:05PM"))
			count++
			if count > 2 {
				return
			}
		}
	}()
	waitGroup.Wait()
	fmt.Println("游戏结束")
}
